package org.yuanqiframework.yuanqi.boot.sys.dto;

import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;

/**
 * 菜单权限表
 *
 * @TableName sys_menu
 */
@Data
public class SysMenuDTO implements Serializable {
    /**
     * 菜单名称
     */
    @NotBlank(message = "[菜单名称]不能为空")
    @Size(max = 50, message = "编码长度不能超过50")
    @Length(max = 50, message = "编码长度不能超过50")
    private String menuName;
    /**
     * 父菜单ID
     */
    @NotNull(message = "[父菜单ID]不能为空")
    private Long parentId;
    /**
     * 显示顺序
     */
    @NotNull(message = "[显示顺序]不能为空")
    private Integer orderNum;
    /**
     * 路由地址
     */
    @NotBlank(message = "[路由地址]不能为空")
    @Size(max = 200, message = "编码长度不能超过200")
    @Length(max = 200, message = "编码长度不能超过200")
    private String path;
    /**
     * 组件路径
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @Length(max = 255, message = "编码长度不能超过255")
    private String component;
    /**
     * 路由参数
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @Length(max = 255, message = "编码长度不能超过255")
    private String query;
    /**
     * 路由名称
     */
    @NotBlank(message = "[路由名称]不能为空")
    @Size(max = 50, message = "编码长度不能超过50")
    @Length(max = 50, message = "编码长度不能超过50")
    private String routeName;
    /**
     * 是否为外链（0是 1否）
     */
    @NotNull(message = "[是否为外链]不能为空")
    private Integer isFrame;
    /**
     * 是否缓存（0缓存 1不缓存）
     */
    @NotNull(message = "[是否缓存]不能为空")
    private Integer isCache;
    /**
     * 菜单类型（M目录 C菜单 F按钮）
     */
    @NotBlank(message = "[菜单类型]不能为空")
    private String menuType;
    /**
     * 是否可见（0显示 1隐藏）
     */
    @NotBlank(message = "[是否可见]不能为空")
    private String visible;
    /**
     * 菜单状态（0正常 1停用）
     */
    @NotBlank(message = "[菜单状态]不能为空")
    private String status;
    /**
     * 权限标识
     */
    @Size(max = 100, message = "编码长度不能超过100")
    @Length(max = 100, message = "编码长度不能超过100")
    private String perms;
    /**
     * 菜单图标
     */
    @Size(max = 100, message = "编码长度不能超过100")
    @Length(max = 100, message = "编码长度不能超过100")
    private String icon;
    /**
     * 备注
     */
    @Size(max = 500, message = "编码长度不能超过500")
    @Length(max = 500, message = "编码长度不能超过500")
    private String remark;

}
